package org.eiahe.hr.training.service;

import org.eiahe.hr.training.domain.bo.HrTrainingCourseBo;
import org.eiahe.hr.training.domain.vo.HrTrainingCourseVo;
import org.ehe.common.mybatis.core.page.PageQuery;
import org.ehe.common.mybatis.core.page.TableDataInfo;

import java.util.Collection;
import java.util.List;

/**
 * 培训课程Service接口
 *
 * @author zhangnn
 */
public interface IHrTrainingCourseService {

    /**
     * 查询培训课程
     */
    HrTrainingCourseVo queryById(Long courseId);

    /**
     * 查询培训课程列表
     */
    TableDataInfo<HrTrainingCourseVo> queryPageList(HrTrainingCourseBo bo, PageQuery pageQuery);

    /**
     * 查询培训课程列表
     */
    List<HrTrainingCourseVo> queryList(HrTrainingCourseBo bo);

    /**
     * 新增培训课程
     */
    String insertByBo(HrTrainingCourseBo bo);

    /**
     * 修改培训课程
     */
    Boolean updateByBo(HrTrainingCourseBo bo);

    /**
     * 批量删除培训课程
     */
    Boolean deleteByIds(Collection<Long> courseIds);

    /**
     * 为课程添加课件
     */
    Boolean addCourseMaterial(Long courseId, List<Long> materialIds);

    /**
     * 为课程添加学员
     */
    Boolean addCourseStudent(Long courseId, List<Long> employeeIds);

    /**
     * 移除课程学员
     */
    Boolean removeCourseStudent(Long courseId, List<Long> employeeIds);

    /**
     * 获取课程详情(含课件和学员)
     */
    HrTrainingCourseVo getCourseDetail(Long courseId);

    /**
     * 开始学习
     * @param courseId
     * @return
     */
    Boolean startCourseDetail(Long courseId);


}
